(()=>{
    //  泛型

    function getArr(value: number, count: number) :number[] {
        // 根据数据和数量产生一个数组
        const arr : number[] = []
        for(let i=0; i< count; i++) {
            arr.push(value)
        }
        return arr 
    }

    const arr1 = getArr(100.123, 3)
    console.log(arr1)

    // 定义一个函数， 同上，只不过传入的字符串类型
    function getArr2(value: string, count: number) :string[] {
        // 根据数据和数量产生一个数组
        const arr : string[] = []
        for(let i=0; i< count; i++) {
            arr.push(value)
        }
        return arr 
    }
    const arr2 = getArr2("Hello", 3)
    console.log(arr2)

    function getArr3(value: any, count: number) :any[] {
        // 根据数据和数量产生一个数组
        const arr : any[] = []
        for(let i=0; i< count; i++) {
            arr.push(value)
        }
        return arr 
    }
    const arr3 = getArr3("Hello", 3)
    console.log(arr3)
    const arr4 = getArr3(100.123, 3)
    console.log(arr4)
    // console.log(arr4[0].toFix(2))


    function getArr5<T>(value: T, count: number) :T[] {
        // 根据数据和数量产生一个数组
        const arr : T[] = []
        for(let i=0; i< count; i++) {
            arr.push(value)
        }
        return arr 
    }
    const arr5 = getArr5<string>("hello", 3)
    console.log(arr5)
    const arr6 = getArr5<number>(123.123, 3)
    console.log(arr6[0].toFixed(2))

    // 多个泛型参数的汉纳树
    function getMsg<K,V>(value1: K, value2: V): [K, V] {
        return [value1, value2]
    }
    const arr7 = getMsg<string, number>("msg", 20)
    console.log(arr7)

   
})()